﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PluginsAPI;

namespace XMPP_Network {
    public class XMPP_Network /*: INetworkPlugin*/ {
        #region Private IPlugin Vars
        private string _Name = "XMPP Network";
        private string _Description = "Wtyczka dla sieci Jabber (XMPP).";
        private string _Author = "VirusxD";
        private string _AuthorEmail = "virusxd@o2.pl";
        private string _AuthorUrl = "http://viursxd.pl";
        private string _Version = "1.0.0.0";
        private DateTime _PublishDate = new DateTime( );
        #endregion;

        #region Private INetworkPlugin Vars  
        private Contacts _Contacts = new Contacts( );
        private Logs _Logs = new Logs( );
        private int _Login;
        private string _Password;
        private string _Server;
        private int _Port;
        private bool _AutoLogin;
        private string _Desc;
        private Statuses _Status;
        #endregion

        public string Name { get { return _Name; } }
        public string Description { get { return _Description; } }
        public string Author { get { return _Author; } }
        public string AuthorEmail { get { return _AuthorEmail; } }
        public string AuthorUrl { get { return _AuthorUrl; } }
        public string Version { get { return _Version; } }
        public DateTime PublishDate { get { return _PublishDate; } }

        public string Login { get { return _Login.ToString( ); } set { _Login = Convert.ToInt32(value); } }
        public string Password { get { return _Password; } set { _Password = value; } }
        public string Server { get { return _Server; } set { _Server = value; } }
        public int Port { get { return _Port; } set { _Port = value; } }
        public bool AutoLogin { get { return _AutoLogin; } set { _AutoLogin = value; } }
        public string Desc { get { return _Desc; } set { _Desc = value; } }
        public Statuses Status { get { return _Status; } set { _Status = value; } }

        public List<IContact> Contacts {
            get { return _Contacts; }
        }
        public List<ILog> Logs {
            get { return _Logs; }
        }

        public void LogIn( ) { }
        public void LogOut( ) {}
        public void ChangePassword(string NewPassword) { }
        public void SendMessage(string To, string Text) { }

        public void Register( ) { /*Window*/}
        public void Detele( ) { /*Window*/}
        public void RemaindPassword( ) { /*Window*/}
        public void FindFriends( ) { /*Window*/}

        public event EventHandler Error;
        public event EventHandler Registered;
        public event EventHandler Deleted;
        public event EventHandler StatusChanged;
        public event EventHandler DescriptionChanged;
        public event EventHandler MessageSended;
        public event EventHandler MessageRevided;
    }

    public class Contacts : List<IContact> {

    }
    public class Logs : List<ILog> {

    }
}